home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
VIG-SL20.ZIP
/
SLOGON.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-07-01
|
10KB
|
565 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer TINTEGER012(1)
String TSTRING001(1,2)
String TSTRING002(26,2)
String TSTRING003(31)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
BigStr BIGSTR001
;------------------------------------------------------------------------------
GetUser
STRING004 = "@X08Slogon v2.0 by Vigilante [PWA] @X8C<UNREGISTERED>"
INTEGER004 = Random(Time())
INTEGER004 = Random(Time())
INTEGER004 = Random(Time())
INTEGER004 = 1
StartDisp 1
FOpen 1, PPEPath() + "slogon.cnf", 0, 0
For INTEGER002 = 1 To 31
FGet 1, TSTRING003(INTEGER002)
Next
FClose 1
TSTRING001(0, 1) = " " + TSTRING003(18) + " "
TSTRING001(1, 1) = " " + TSTRING003(19) + " "
STRING006 = Lower(ReadLine(PCBDat(), 2)) + Lower(ReadLine(PCBDat(), 94))
For INTEGER002 = 1 To Len(STRING006) Step 2
INTEGER004 = Left(INTEGER004 * Asc(Mid(STRING006, INTEGER002, 1)), 6)
Next
For INTEGER002 = 1 To Len(STRING004) Step 2
INTEGER001 = INTEGER001 + Asc(Mid(STRING004, INTEGER002, 1))
Next
If (INTEGER001 <> 1985) End
If (INTEGER004 == TSTRING003(1)) Then
BOOLEAN001 = 1
STRING004 = Left(STRING004, 34)
Endif
If (Exist(PPEPath() + "automsg.dat")) Goto LABEL001
FCreate 1, PPEPath() + "automsg.dat", 1, 0
FPutLn 1, "None."
FClose 1
:LABEL001
If (Exist(PPEPath() + "callers.dat")) Goto LABEL002
FCreate 1, PPEPath() + "callers.dat", 1, 0
FClose 1
:LABEL002
If (Exist(PPEPath() + "oneliner.dat")) Goto LABEL003
FCreate 1, PPEPath() + "oneliner.dat", 1, 0
FPutLn 1, TSTRING003(22) + STRING004
FPutLn 1, TSTRING003(23) + " " + Mid(STRING004, 20, 15)
FClose 1
:LABEL003
If (CurSec() >= TSTRING003(2)) Then
FreshLine
If (TSTRING003(6) < 0) Then
Cls
Goto LABEL004
Endif
Newlines TSTRING003(6)
:LABEL004
PrintLn STRING004
If (Lower(TSTRING003(5)) == "no") Delay 18
If (!BOOLEAN001) Delay 18
If (Lower(TSTRING003(5)) <> "no") Then
Print TSTRING003(5)
If (Lower(Left(TSTRING003(20), 1)) == "y") Then
BOOLEAN003 = 1
Goto LABEL005
Endif
BOOLEAN003 = 0
:LABEL005
Gosub LABEL019
If (BOOLEAN003) BOOLEAN002 = 1
Endif
FreshLine
If (BOOLEAN002) Goto LABEL013
For INTEGER006 = 1 To Len(TSTRING003(7))
INTEGER007 = Mid(TSTRING003(7), INTEGER006, 1)
FreshLine
If (INTEGER007 == 1) Then
If (Lower(Left(TSTRING003(9), 1)) == "r") Then
DispFile PPEPath() + "welcome." + String(Random(TSTRING003(8) - 1) + 1), 0
Wait
Goto LABEL006
Endif
For INTEGER007 = 1 To TSTRING003(8)
DispFile PPEPath() + "welcome." + String(INTEGER007), 0
Wait
Next
:LABEL006
Continue
Endif
If (INTEGER007 == 2) Then
DispFile PPEPath() + "stats." + String(Random(TSTRING003(10) - 1) + 1), 0
Wait
Continue
Endif
If (INTEGER007 == 3) Then
If (Exist(PPEPath() + "callers.top")) DispFile PPEPath() + "callers.top", 0
If (Exist(PPEPath() + "callers.dat")) DispFile PPEPath() + "callers.dat", 0
If (Exist(PPEPath() + "callers.mid")) DispFile PPEPath() + "callers.mid", 0
If (Exist(PPEPath() + "callers.sta")) DispFile PPEPath() + "callers.sta", 0
If (Exist(PPEPath() + "callers.bot")) DispFile PPEPath() + "callers.bot", 0
Wait
Continue
Endif
If (INTEGER007 == 4) Then
DispFile PPEPath() + "automsg.top", 0
If (Exist(PPEPath() + "automsg.dat")) DispFile PPEPath() + "automsg.dat", 0
DispFile PPEPath() + "automsg.bot", 0
Wait
Continue
Endif
If (INTEGER007 == 5) Then
FOpen 1, PPEPath() + "oneliner.dat", 0, 0
INTEGER003 = 0
:LABEL007
If (Ferr(1)) Goto LABEL008
Inc INTEGER003
FGet 1, TSTRING002(INTEGER003, 0)
FGet 1, TSTRING002(INTEGER003, 1)
Goto LABEL007
:LABEL008
Dec INTEGER003
FClose 1
DispFile PPEPath() + "oneliner.top", 0
For INTEGER002 = 1 To INTEGER003
PrintLn TSTRING002(INTEGER002, 0)
If (CurSec() >= SysopSec()) PrintLn TSTRING002(INTEGER002, 1)
Next
DispFile PPEPath() + "oneliner.bot", 0
Print TSTRING003(25)
If (Lower(Left(TSTRING003(31), 1)) == "y") Then
BOOLEAN003 = 1
Goto LABEL009
Endif
BOOLEAN003 = 0
:LABEL009
Gosub LABEL019
Newline
If (BOOLEAN003) Then
If (Exist(PPEPath() + "oneliner.hlp")) DispFile PPEPath() + "oneliner.hlp", 0
Print TSTRING003(22)
STRING007 = ""
INTEGER002 = 0
While (STRING007 <> Chr(13)) Do
STRING007 = Inkey()
If (((Len(STRING007) == 1) && (STRING007 >= " ")) && (INTEGER002 < 75)) Then
Print STRING007
Inc INTEGER002
STRING005 = STRING005 + STRING007
If (StripAtx(Right(STRING005, 4)) == "") Then
INTEGER009 = CurColor()
For INTEGER008 = 1 To 4
Print Chr(8) + " " + Chr(8)
Dec INTEGER002
Next
Print Right(STRING005, 4)
Endif
Continue
Endif
If ((STRING007 == Chr(8)) && (Len(STRING005) > 0)) Then
If (StripAtx(Right(STRING005, 4)) == "") Then
Color INTEGER009
STRING005 = Left(STRING005, Len(STRING005) - 4)
Continue
Endif
Print Chr(8) + " " + Chr(8)
Dec INTEGER002
STRING005 = Left(STRING005, Len(STRING005) - 1)
Endif
EndWhile
If (StripAtx(STRING005) <> "") Then
FAppend 1, PPEPath() + "oneliner.log", 1, 0
FPutLn 1, StripAtx(TSTRING003(22) + STRING005)
FPutLn 1, StripAtx(TSTRING003(23) + " " + Mixed(U_Name()))
FClose 1
Log "■ ONELINER: " + STRING005, 0
If (INTEGER003 < TSTRING003(21)) Then
INTEGER005 = 1
Goto LABEL010
Endif
INTEGER005 = 2
INTEGER003 = TSTRING003(21)
:LABEL010
If (BOOLEAN001) Goto LABEL011
TSTRING002(INTEGER005, 0) = TSTRING003(22) + STRING004
TSTRING002(INTEGER005, 1) = TSTRING003(23) + " " + Mid(STRING004, 20, 15)
:LABEL011
FCreate 1, PPEPath() + "oneliner.dat", 1, 0
For INTEGER002 = INTEGER005 To INTEGER003
If (TSTRING002(INTEGER002, 0) <> "") FPutLn 1, TSTRING002(INTEGER002, 0)
If (TSTRING002(INTEGER002, 1) <> "") FPutLn 1, TSTRING002(INTEGER002, 1)
Next
FPutLn 1, TSTRING003(22) + STRING005
FPutLn 1, TSTRING003(23) + " " + Mixed(U_Name())
FClose 1
FreshLine
PrintLn TSTRING003(26)
Goto LABEL012
Endif
FreshLine
PrintLn TSTRING003(27)
:LABEL012
Wait
Endif
Continue
Endif
If (INTEGER007 == 6) Then
If (Exist(Right(TSTRING003(28), Len(TSTRING003(28)) - 1))) Then
DispStr TSTRING003(28)
Wait
Endif
Endif
Next
:LABEL013
If (!OnLocal() || (Lower(TSTRING003(12)) == "yes")) Then
If (TSTRING003(3) > 0) Then
INTEGER007 = InStr(TSTRING003(4), "@OPTEXT@")
TSTRING003(4) = Left(TSTRING003(4), INTEGER007 - 1) + U_Name() + " (" + String(PcbNode()) + ")" + Right(TSTRING003(4), Len(TSTRING003(4)) - INTEGER007 - 7)
For INTEGER002 = 1 To TSTRING003(3)
If (INTEGER002 <> PcbNode()) Then
RdUNet INTEGER002
If (InStr(" 0NORTWX", UN_Stat()) == 0) Broadcast INTEGER002, INTEGER002, TSTRING003(4)
Endif
Next
Endif
FOpen 1, PPEPath() + "callers.dat", 0, 0
INTEGER003 = 0
:LABEL014
If (Ferr(1)) Goto LABEL015
Inc INTEGER003
FGet 1, TSTRING002(INTEGER003, 2)
Goto LABEL014
:LABEL015
Dec INTEGER003
FClose 1
If (INTEGER003 < TSTRING003(11)) Then
INTEGER005 = 1
Goto LABEL016
Endif
INTEGER005 = 2
INTEGER003 = TSTRING003(11)
:LABEL016
Gosub LABEL018
FCreate 1, PPEPath() + "callers.dat", 1, 0
For INTEGER002 = INTEGER005 To INTEGER003
If (TSTRING002(INTEGER002, 2) <> "") FPutLn 1, TSTRING002(INTEGER002, 2)
Next
FPutLn 1, BIGSTR001
FClose 1
Goto LABEL017
Endif
Gosub LABEL018
Endif
:LABEL017
End
:LABEL018
BIGSTR001 = TSTRING003(13)
FCreate 1, PPEPath() + "callers$." + String(PcbNode()), 1, 0
STRING008 = Left(TimeAp(Time()), 5) + Lower(Right(TimeAp(Time()), 2))
BIGSTR001 = ReplaceStr(BIGSTR001, "@LTIME@", STRING008)
If (OnLocal()) Then
STRING008 = TSTRING003(14)
Else
STRING008 = Right(String(Carrier()), 5)
STRING008 = Left(STRING008, 2) + "." + Mid(STRING008, 3, 1) + "k"
Endif
BIGSTR001 = ReplaceStr(BIGSTR001, "@SPD@", STRING008)
STRING008 = Right(String(PcbNode()), 3)
BIGSTR001 = ReplaceStr(BIGSTR001, "@N@", STRING008)
INTEGER010 = U_Bul()
INTEGER011 = U_Bdl()
If (TSTRING003(17) > 9) TSTRING003(17) = 9
If ((INTEGER010 == 0) && (INTEGER011 == 0)) Then
STRING009 = " 0:0 "
Else
If (INTEGER010 == 0) Inc INTEGER010
If (INTEGER011 == 0) Inc INTEGER011
If (INTEGER010 < INTEGER011) Then
STRING009 = INTEGER011 / INTEGER010
If (INTEGER011 % INTEGER010 > 0) Inc STRING009
If (ToInteger(STRING009) > TSTRING003(17)) Then
STRING009 = TSTRING003(15)
Else
STRING009 = " 1:" + STRING009 + " "
Endif
ElseIf (INTEGER010 > INTEGER011) Then
STRING009 = INTEGER010 / INTEGER011
If (INTEGER010 % INTEGER011 > 0) Inc STRING009
If (ToInteger(STRING009) > TSTRING003(17)) Then
STRING009 = TSTRING003(16)
Else
STRING009 = " " + STRING009 + ":1 "
Endif
Else
STRING009 = " 1:1 "
Endif
Endif
STRING008 = STRING009
BIGSTR001 = ReplaceStr(BIGSTR001, "@U/D@", STRING008)
STRING008 = "---"
BIGSTR001 = ReplaceStr(BIGSTR001, "@M@", STRING008)
STRING008 = "ONLINE"
BIGSTR001 = ReplaceStr(BIGSTR001, "@ACTS@", STRING008)
STRING008 = Left(U_Name(), 20)
BIGSTR001 = ReplaceStr(BIGSTR001, "@USERNAME_OR_HANDLE@", STRING008)
STRING008 = Left(U_City, 20)
BIGSTR001 = ReplaceStr(BIGSTR001, "@USERCITY_OR_AFFILS@", STRING008)
STRING008 = U_Name() + " (" + U_City
If (Len(STRING008) > 40) Then
STRING008 = Left(STRING008, 40) + ")"
Else
STRING008 = Left(STRING008 + ")", 41)
Endif
BIGSTR001 = ReplaceStr(BIGSTR001, "@USERNAME_OR_HANDLE_(USERCITY_OR_AFFILS)@", STRING008)
FPutLn 1, BIGSTR001
FPutLn 1, U_Ful()
FPutLn 1, U_Fdl()
FPutLn 1, U_MsgRd()
FPutLn 1, U_MsgWr()
If (Psa(5)) Then
FPutLn 1, U_Stat(2)
FPutLn 1, U_Stat(10) + U_Stat(11) + U_Stat(14) + U_Stat(15)
Else
FPutLn 1, "0"
FPutLn 1, "0"
Endif
FPutLn 1, U_Bul()
FPutLn 1, U_Bdl()
FClose 1
Return
:LABEL019
BOOLEAN004 = 0
STRING007 = ""
Print " "
TSTRING001(0, 0) = GetX() - 1
Print TSTRING003(29) + TSTRING001(BOOLEAN003, 1)
TSTRING001(1, 0) = GetX() - 1
Print TSTRING003(29) + TSTRING001(!BOOLEAN003, 1)
Print Chr(13)
Forward TSTRING001(BOOLEAN003, 0)
Print TSTRING003(30) + TSTRING001(BOOLEAN003, 1)
Print Chr(13)
Forward TSTRING001(BOOLEAN003, 0)
:LABEL020
If (BOOLEAN004) Goto LABEL021
STRING007 = Upper(Left(Inkey(), 1))
Select Case (STRING007)
Case YesChar()
If (!BOOLEAN003) STRING007 = "U"
BOOLEAN004 = 1
Case NoChar()
If (BOOLEAN003) STRING007 = "U"
BOOLEAN004 = 1
Case Chr(13)
BOOLEAN004 = 1
End Select
If (InStr("ULADRZ", STRING007) > 0) Then
Print Chr(13)
Forward TSTRING001(BOOLEAN003, 0)
Print TSTRING003(29) + TSTRING001(BOOLEAN003, 1)
BOOLEAN003 = !BOOLEAN003
Print Chr(13)
Forward TSTRING001(BOOLEAN003, 0)
Print TSTRING003(30) + TSTRING001(BOOLEAN003, 1)
Print Chr(13)
Forward TSTRING001(BOOLEAN003, 0)
Endif
Goto LABEL020
:LABEL021
Color DefColor()
Return
If (0) Then
Brag
FFlush 1
FReAltUser
MouseReg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
Redim TINTEGER012, 2
Sort TINTEGER012, TINTEGER012
Print FlagCnt()
Print HiMsgNum()
Print KbdBufSize()
Print KbdFilUsed()
Print LoMsgNum()
Print PPLBufSize()
Endif
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 1 Cls
; 7 Wait
; 2 Color
; 96 Goto
; 102 Let
; 24 Print
; 5 PrintLn
; 80 If
; 14 DispFile
; 6 FCreate
; 3 FOpen
; 1 FAppend
; 10 FClose
; 4 FGet
; 22 FPutLn
; 1 StartDisp
; 1 GetUser
; 1 Log
; 4 Gosub
; 2 Return
; 2 Delay
; 7 Inc
; 4 Dec
; 1 Newline
; 1 Newlines
; 1 Broadcast
; 1 DispStr
; 1 RdUNet
; 5 Forward
; 5 FreshLine
; 1 FFlush
; 1 Redim
; 1 Sort
; 1 MouseReg
; 1 Brag
; 1 FReAltUser
;
;
; ■ Functions used :
;
; 1 *
; 2 /
; 2 %
; 99 +
; 10 -
; 24 ==
; 8 <>
; 15 <
; 10 <=
; 10 >
; 23 >=
; 62 !
; 24 &&
; 11 ||
; 13 Len(
; 9 Lower()
; 1 Upper()
; 6 Mid()
; 15 Left()
; 8 Right()
; 2 Ferr()
; 12 Chr()
; 2 Asc()
; 3 InStr()
; 5 Random()
; 5 Time()
; 5 U_Name()
; 1 U_Ful()
; 1 U_Fdl()
; 2 U_Bdl()
; 2 U_Bul()
; 2 TimeAp()
; 1 NoChar()
; 1 YesChar()
; 5 StripAtx()
; 2 Inkey()
; 7 String()
; 2 PCBDat()
; 34 PPEPath()
; 1 U_MsgRd()
; 1 U_MsgWr()
; 4 PcbNode()
; 2 ReadLine()
; 1 SysopSec()
; 2 OnLocal()
; 1 UN_Stat()
; 2 CurSec()
; 11 Exist()
; 1 Carrier()
; 2 GetX()
; 5 U_Stat()
; 1 DefColor()
; 1 Psa()
; 1 CurColor()
; 9 ReplaceStr()
; 2 ToInteger()
; 2 Mixed()
; 1 FlagCnt()
; 1 KbdBufSize()
; 1 PPLBufSize()
; 1 KbdFilUsed()
; 1 LoMsgNum()
; 1 HiMsgNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : ds
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 10 For/Next
; 1 While/EndWhile
; 35 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------